#pragma once

#include <memory>
#include <string>
#include "stream/Meta.h"

namespace helper {
namespace rocksdb {
class Rocksdb;
}
}

namespace stream {
namespace impl {
namespace rocksdb {


class Meta : public ::stream::Meta{
public:
	explicit Meta(const std::string & dbname);
	~Meta()override ;

protected:
    bool _open()override;
    void _close() override;
private:
	std::shared_ptr<::helper::rocksdb::Rocksdb> _db;
	std::string _dbname;
};

::stream::impl::rocksdb::Meta * makeMeta(const std::string & path);

}//end namespace rocksdb
}//end namespace impl
}//end namespace stream
